package ar.com.ctrln.persistence.dao.organizacion;

import org.hibernate.Query;
import org.springframework.stereotype.Repository;

import ar.com.ctrln.persistence.dao.AbstractHibernateDao;
import ar.com.ctrln.persistence.model.cliente.Cliente;
import ar.com.ctrln.persistence.model.organizacion.Organizacion;
import ar.com.ctrln.persistence.model.proveedor.Proveedor;

@Repository("organizacionDao")
public class HibernateOrganizacionDao extends AbstractHibernateDao<Organizacion> implements OrganizacionDao {

	@Override
	public Cliente findClienteByName(String nombre) {
		Query q = getSession().createQuery("from Cliente c where c.nombre = ?");
		q.setParameter(0, nombre);
		return (Cliente) q.uniqueResult();
	}

	@Override
	public Cliente findClienteByCuit(String cuit) {
		Query q = getSession().createQuery("from Cliente c where c.cuit_cuil = ?");
		q.setParameter(0, cuit);
		return (Cliente) q.uniqueResult();
	}

	@Override
	public Proveedor findProveedorByName(String nombre) {
		Query q = getSession().createQuery("from Proveedor c where c.nombre = ?");
		q.setParameter(0, nombre);
		return (Proveedor) q.uniqueResult();
	}

	@Override
	public Proveedor findProveedorByCuit(String cuit) {
		Query q = getSession().createQuery("from Proveedor c where c.cuit_cuil = ?");
		q.setParameter(0, cuit);
		return (Proveedor) q.uniqueResult();
	}
}
